/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_Studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#pragma once

#include <节点/节点.h>
#include <core/空间划分/球形八叉树.h>
#include "节点数据声明.h"



class API_EXPORT C_帧时间节点 : public C_节点基类 {
	//S_设备环境	m_GPU环境;
public:
	C_帧时间节点(S_设备环境& ctx);
	~C_帧时间节点();

	bool	f_update();
	std::string DEF_节点编译函数;
};

C_节点基类* f_node_创建帧时间节点(S_设备环境& ctx, C_节点树* 子节点树);
C_节点基类* f_node_载入帧时间节点(S_设备环境& ctx, FILE* f);
void		f_node_保存帧时间节点(C_节点基类* n, FILE* f);






class API_EXPORT C_视口物体操作手柄节点 : public C_节点基类 {
	S_物体* m_Ob;
public:
	C_视口物体操作手柄节点(S_设备环境& ctx);
	~C_视口物体操作手柄节点();

	static S_射线拾取参数 pickInfo;
	/*static vec3 g相机位置;
	static vec3 g开始射线;
	static vec3 g结束射线;
	static vec3 g手柄位置;
	static vec3 g垂足坐标;
	static vec3 g垂直线向量;
	static vec3 g交点S;
	static vec3 g交点E;
	static float32 g垂直线长度;
	static float32 g开始交点距离;
	static float32 g结束交点距离;*/

	bool	f_update();
};

C_节点基类* f_node_载入视口物体操作手柄节点(S_设备环境& ctx, FILE* f);
void		f_node_保存视口物体操作手柄节点(C_节点基类* n, FILE* f);




//class API_EXPORT C_3D视口射线节点 : public C_节点基类 {
//	
//public:
//	C_3D视口射线节点(S_设备环境& ctx);
//	~C_3D视口射线节点();
//
//	bool	f_update();
//};
//
//C_节点基类* f_node_载入3D视口射线节点(S_设备环境& ctx, FILE* f);
//void		f_node_保存3D视口射线节点(C_节点基类* n, FILE* f);




